Field of the Invention
The present invention relates to an information processing apparatus, a method of controlling an information processing apparatus, a print system, and a storage medium.
Description of the Related Art
For an information processing apparatus to use a peripheral device, such as an image forming apparatus, and the like, it is necessary to embed a device driver (for instance, a printer driver for the case in which the peripheral device is a printer) corresponding to the peripheral device into an operating system (hereafter referred to as OS) that operates on the information processing apparatus. Also, when a printer apparatus, which is a peripheral device, is used, a printer driver is caused to be activated from an application to perform settings required for printing, and image data and print settings (hereafter, these will be collectively called a print job) are generated. Then, the generated print job is transmitted to the printer apparatus. With this arrangement, the printer apparatus that received the print job executes image generation processing (hereafter referred to as rendering) in accordance with the print settings of the print job to print an image on a sheet.
A conventional printer driver includes a user interface module that manages input from a user or an application, a print job generation module that generates the print job, and a communication control module that controls communication between an information processing apparatus and a printer apparatus. Hereafter, the communication control module will be called a language monitor.
A printer driver that includes these module groups is called a Version 3 driver (hereafter referred to as a V3 printer driver). The language monitor accepts a print job generated by the print job generation module and transmits the print job to the printer apparatus via the OS. Also, when a request for cancellation of the print job, or the like, from the user or an application is received, the language monitor controls the print job by performing processing in accordance with the request. Also, there exist V3 drivers that are equipped with a language monitor that extends a language monitor, and can support a protocol for print communication used in not only transmitting a print job from the printer driver, but also receiving, from the printer apparatus, apparatus information of the printer apparatus. By a language monitor that supports such a protocol, even in a case in which a printer apparatus with a small memory capacity is used, it becomes possible to execute stable printing by the printer driver always confirming the memory state of the printer apparatus as information. Also, by a language monitor that supports such a protocol, it is possible for the information processing apparatus to collect, in detail, statuses of the printer apparatus, and to perform management and control of print jobs that would originally have been performed by the printer apparatus. Additionally, systems in which it is possible for applications in the information processing apparatus to display collected statuses of the printer apparatus and messages to a user, input of settings of the printer apparatus, and the like, are widely commercialized and used.
In this way, it is possible to simplify the operation panel of the printer apparatus, and to suppress product costs by performing what would conventionally have been displayed or inputted on a panel of the printer apparatus in an application of the information processing apparatus. Furthermore, systems in which, rather than performing rendering on the printer apparatus, image data that has been rendered by a V3 driver on an information processing apparatus is transmitted to a printer apparatus to cause it to print have been commercialized and used. Such systems are called host-based print systems, and can perform printing equivalent to that of a normal printer apparatus in a printer apparatus in which little memory capacity or a low-spec central processing unit (CPU) is equipped by the function of a language monitor as previously described. In this way, it is possible to suppress the cost of the printer apparatus.
Meanwhile, from Windows 8®, recently introduced by Microsoft Corporation, a printer driver configuration different from the configuration described above has been employed. The foregoing language monitor is not included in the group of modules that configure the printer driver. Also, a communication port that can be used is limited to a Universal Serial Bus (USB) port and a Web Service Device (WSD) port. Such a printer driver is called a Version 4 driver (hereafter referred to as a V4 driver). The V4 driver does not have a language monitor, and so communication processing that transmits, to a printer apparatus, a print job generated by a print job generation module is provided by a spooler equipped as standard on Windows®. Also, processing that a language monitor performs in a V3 driver, such as that in response to a request to cancel a print job from a user or an application, or the like, is executed by this spooler.
In this way, processing that a language monitor performed in the V3 driver conventionally has come to be performed by a spooler in the V4 driver, and thereby there are cases in which control that was possible in the V3 driver ceases to be possible. For example, a case is considered in which, when a printer apparatus and an information processing apparatus are connected via USB, and an error that print processing cannot continue on the printer apparatus occurs, a cancel request in relation to the print job for which the error occurred is issued. In such a case, there are times in which the spooler does not make an instruction to cancel printing to the printer apparatus in relation to the OS. With respect to such a problem, a technique is recited in, for example, Japanese Patent Laid-Open No. 2014-134861, in which a spooler or a command generation filter that is an element of the V4 driver appropriately determines the status of the printer apparatus, and cancels the print job appropriately.
A printer apparatus that can be applied to the foregoing host-based print system is designed with the premise that there is the V3 driver in which a language monitor that supports a protocol for print communication is equipped. Therefore, a request in relation to a print job, such as a print execution request or cancel request, and an operation setting change request from the information processing apparatus to the printer apparatus, and a printer status information notification from the printer apparatus to the information processing apparatus were performed using a protocol for print communication. Furthermore, management of print jobs was performed using the language monitor.
Because there is a restriction that an independent language monitor cannot be embedded in a printer driver in the V4 driver, however, a language monitor that supports a protocol for print communication cannot be embedded into the V4 driver. As a consequence, there is a problem in that a printer apparatus applied to a host-based print system cannot be used to print with the V4 driver.